Event Processing (EP) or Complex Event Processing (CEP) is a discipline that aims at identifying of and responding to relatively complex situations based on simpler events detected. EP or CEP can be depicted as the bridge between the occurrence of events, and the reaction through an adaptation that is required by the situation. A situation may be triggered by the observation of a raw event, but is more typically obtained by detecting a pattern over the flow of events. For example, a pattern consisting of multiple transactions with a single debit card performed on locations distant from each other by over 100 kilometers within less than 30 minutes may indicate a financial fraud situation.
A CEP system receives events from multiple sources, also referred to as “event producers”, routes these events, filters them, transforms them, aggregates them, detects patterns over multiple events, and emits derived/output events from the event processing system to one or more end destinations, also referred to as “event consumers”.
A complete definition set made up of these functions is known as an Event Processing Network (EPN). An EPN is a conceptual model, describing the event processing flow execution. An EPN comprises a collection of Event Processing Agents (EPAs), event producers, and event consumers. A single EPA may implement a function or an operator applied on incoming input events, such as AND, OR, SEQ, NOT (also referred to as “absence” operator), or the like. An outcome of one EPA, i.e. a derived event, may be provided as input to another EPA, and so forth.
One major performance objective for an event processing application relates to latency. Latency, or response time, is an important performance metric in IT systems. In some domains the acceptable latency limits are very strict and challenging. On the other hand, complexity of software is continuously increasing, as well as the complexity of the problems it is solving. Latency applied to CEP with regards to the present disclosure refer to the elapsed time from receipt of an input event to emission of the corresponding derived event. Sometimes real-time applications impose particular performance upper limits for either processing of a certain event type, or for a certain EPA implementing an intermediate calculation. Some CEP computations can be time consuming, and involve waiting until arrival of a specific event, timeouts, joins, time-related operations, or the like. All these may impact the latency.